/**
 * This file is part of 1genia trampoline
 * Copyright (C) 2007-2008 1genia (contact@1genia.com)
 *
 * This library is free software; you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License as
 * published by the Free Software Foundation; version 3 of the License.
 *
 * This library is distributed in the hope that it will be useful, but
 * WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Library General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; see the file COPYING.TXT.  If not,
 * write to the Free Software Foundation, Inc., 51 Franklin Street,
 * Fifth Floor, Boston, MA 02110-1301, USA.
 **/
package com.genia.toolbox.config.autoconfiguration.web.spring.command;

import java.io.File;

/**
 * The form used for the configuration.
 */
public interface ConfigurationCommand {

	/**
	 * getter for the oldPassword property.
	 *
	 * @return the oldPassword
	 */
	public abstract String getOldPassword();

	/**
	 * setter for the oldPassword property.
	 *
	 * @param oldPassword
	 *            the oldPassword to set
	 */
	public abstract void setOldPassword(String oldPassword);

	/**
	 * getter for the useJndiForMail property.
	 *
	 * @return the useJndiForMail
	 */
	public abstract boolean isUseJndiForMail();

	/**
	 * setter for the useJndiForMail property.
	 *
	 * @param useJndiForMail
	 *            the useJndiForMail to set
	 */
	public abstract void setUseJndiForMail(boolean useJndiForMail);

	/**
	 * getter for the mailServer property.
	 *
	 * @return the mailServer
	 */
	public abstract String getMailServer();

	/**
	 * setter for the mailServer property.
	 *
	 * @param mailServer
	 *            the mailServer to set
	 */
	public abstract void setMailServer(String mailServer);

	/**
	 * getter for the mailSessionJNDIName property.
	 *
	 * @return the mailSessionJNDIName
	 */
	public abstract String getMailSessionJNDIName();

	/**
	 * setter for the mailSessionJNDIName property.
	 *
	 * @param mailSessionJNDIName
	 *            the mailSessionJNDIName to set
	 */
	public abstract void setMailSessionJNDIName(String mailSessionJNDIName);

	/**
	 * getter for the databaseDriver property.
	 *
	 * @return the databaseDriver
	 */
	public abstract String getDatabaseDriver();

	/**
	 * setter for the databaseDriver property.
	 *
	 * @param databaseDriver
	 *            the databaseDriver to set
	 */
	public abstract void setDatabaseDriver(String databaseDriver);

	/**
	 * getter for the databasePassword property.
	 *
	 * @return the databasePassword
	 */
	public abstract String getDatabasePassword();

	/**
	 * setter for the databasePassword property.
	 *
	 * @param databasePassword
	 *            the databasePassword to set
	 */
	public void setDatabasePassword(String databasePassword);

	/**
	 * getter for the encrypted property.
	 *
	 * @return the encrypted
	 */
	public abstract Boolean getEncrypted();

	/**
	 * setter for the encrypted property.
	 *
	 * @param encrypted
	 *            the encrypted to set
	 */
	public void setEncrypted(Boolean encrypted);

	/**
	 * getter for the databaseUrl property.
	 *
	 * @return the databaseUrl
	 */
	public abstract String getDatabaseUrl();

	/**
	 * setter for the databaseUrl property.
	 *
	 * @param databaseUrl
	 *            the databaseUrl to set
	 */
	public abstract void setDatabaseUrl(String databaseUrl);

	/**
	 * getter for the login property.
	 *
	 * @return the login
	 */
	public abstract String getDatabaseLogin();

	/**
	 * setter for the login property.
	 *
	 * @param login
	 *            the login to set
	 */
	public abstract void setDatabaseLogin(String login);

	/**
	 * getter for the newPassword property.
	 *
	 * @return the newPassword
	 */
	public abstract String getNewPassword();

	/**
	 * setter for the newPassword property.
	 *
	 * @param newPassword
	 *            the newPassword to set
	 */
	public abstract void setNewPassword(String newPassword);

	/**
	 * getter for the newPasswordCheck property.
	 *
	 * @return the newPasswordCheck
	 */
	public abstract String getNewPasswordCheck();

	/**
	 * setter for the newPasswordCheck property.
	 *
	 * @param newPasswordCheck
	 *            the newPasswordCheck to set
	 */
	public abstract void setNewPasswordCheck(String newPasswordCheck);

	/**
	 * getter for the configurationDirectory property.
	 *
	 * @return the configurationDirectory
	 */
	public abstract File getConfigurationDirectory();

	/**
	 * setter for the configurationDirectory property.
	 *
	 * @param configurationDirectory
	 *            the configurationDirectory to set
	 */
	public abstract void setConfigurationDirectory(File configurationDirectory);

	/**
	 * getter for the poolMaxSize property.
	 *
	 * @return the poolMaxSize
	 */
	public abstract int getPoolMaxSize();

	/**
	 * setter for the poolMaxSize property.
	 *
	 * @param poolMaxSize
	 *            the poolMaxSize to set
	 */
	public abstract void setPoolMaxSize(int poolMaxSize);

	/**
	 * getter for the schemaUpdate property.
	 *
	 * @return the schemaUpdate
	 */
	public abstract Boolean getSchemaUpdate();

	/**
	 * setter for the schemaUpdate property.
	 *
	 * @param schemaUpdate
	 *            the schemaUpdate to set
	 */
	public abstract void setSchemaUpdate(Boolean schemaUpdate);
}
